-
Notifications
You must be signed in to change notification settings - Fork 279
fix(ui5-select): prevent crash on ArrowUp/Down when value matches no option #12094
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
1e97c10
to
68c4f46
Compare
</Select> | ||
); | ||
|
||
cy.get("#sel-down") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can remove the id attribute from the mount and use [ui5-select] selector instead of #sel-down throughout the test
</Select> | ||
); | ||
|
||
cy.get("#sel-up") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here in this test, you can use [custom-tag] instead of the id(and remove the id from the mount)
); | ||
|
||
cy.get("#sel-down") | ||
.should("have.attr", "value", "missing") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency, consider using have.prop
for the value assertion since you're testing the component's value
property:
.should("have.prop", "value", "missing")
); | ||
|
||
cy.get("#sel-up") | ||
.should("have.attr", "value", "missing") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here, you can change it to have.prop
for consistency
…option If select's value property is set to a string that doesn’t match any option, nothing is selected (selectedIndex = -1). When you press ArrowUp or ArrowDown, _changeSelectedItem tries to use invalid indices, which causes it to access undefined and crash at runtime. Fixes: #12093
68c4f46
to
c6ce6f2
Compare
If select's
value
property is set to a string that doesn’t match any option, nothing is selected(selectedIndex = -1)
. When you press ArrowUp or ArrowDown,_changeSelectedItem
tries to use invalid indices, which causes it to accessundefined
and crash at runtime.Fixes: #12093